<?php
def("amicitia/persistencia/excepciones/","AutenticacionException");
def("amicitia/persistencia/daos/","FabricaDao");
def("amicitia/modelo/entidades/","Persona");
def("amicitia/modelo/entidades/","Juego");

/**
 * ServicioPersistencia es la fachada hacia la capa de persistencia del
 * sistema.
 * 
 * @author Willy A. Kuster
 */
class ServicioPersistencia {
	
	public static function autenticarJugador($alias,$password){
		$fabricaDao = FabricaDao::obtenerFabrica();
		$daoPersona = $fabricaDao->obtenerDaoPersona();
		$id = $daoPersona->autenticarPersona($alias,$password);
		if($id!=null) {
			$jugador = $daoPersona->obtenerPersona($id);
			return $jugador;
		} else {
			throw new AutenticacionException($alias,$password);
		}
	}
	
	public static function registrarJugador(Persona $jugador){
		$fabricaDao = FabricaDao::obtenerFabrica();
		$daoPersona = $fabricaDao->obtenerDaoPersona();
		$id = $daoPersona->guardarPersona($jugador);
	}
	
	public static function obtenerUltimoJuego(){
		;
	}
	
	public static function obtenerParejasDelJuegoPasado(Juego $juegoActual){
		$fabricaDao = FabricaDao::obtenerFabrica();
		$daoJuego = $fabricaDao->obtenerDaoJuego();
		$juegoPasado = $daoJuego->obtenerJuegoPasado($juegoActual);
		
		$parejasPasadas = array();
		if($juegoPasado!=null){
			$juegoPasado = $daoJuego->cargarParejas($juegoPasado);
			$parejasPasadas = $juegoPasado->getParejas();
		}
		
		return $parejasPasadas;
	}
}
?>